:root {
	--hl-gray-0: #bdd4e3;
	--hl-gray-1: #8fa1b3;
	--hl-gray-2: #c0c5ce;
	--hl-gray-4: #4f5b66;
	--hl-gray-5: #96b5b4;
	--hl-gray-6: #969896;
	--hl-dark-green: #359448;
	--hl-dark-blue-1: #329af0;
	--hl-dark-blue-2: #268bd2;
	--hl-dark-blue-3: #35a5ff;
	--hl-dark-yellow: #ebcb8b;
	--hl-dark-red: #bf616a;
	--hl-blue: #72c3fc;
	--hl-yellow: #fff3bf;
	--hl-red: #ffb0af;
	--hl-green-1: #d3f9d8;
	--hl-green-2: #a3be8c;
	--hl-purple: #b48ead;
	--hl-orange: #d08770;
	--hl-brown: #ab7967;
	--hl-black: #2b303b;
	--hl-white: #f2f4f8;
	--hl-bg-red: #bf616a;
	--hl-bg-dark-red: #350b10;
	--hl-bg-dark-green: #0e2414;
	--hl-scip-identifier: #859900;
}

.hljs-keyword,
.hljs-literal,
.hljs-symbol,
.hljs-name {
	color: #569cd6;
}

.hljs-link {
	color: #569cd6;
	text-decoration: underline;
}

.hljs-built_in,
.hljs-type {
	color: #4ec9b0;
}

.hljs-number,
.hljs-class {
	color: #b8d7a3;
}

.hljs-string,
.hljs-meta-string {
	color: #d69d85;
}

.hljs-regexp,
.hljs-template-tag {
	color: #9a5334;
}

.hljs-subst,
.hljs-function,
.hljs-title,
.hljs-params,
.hljs-formula {
	color: #dcdcdc;
}

.hljs-comment,
.hljs-quote {
	color: #57a64a;
}

.hljs-doctag {
	color: #608b4e;
}

.hljs-meta,
.hljs-meta-keyword,
.hljs-tag {
	color: #9b9b9b;
}

.hljs-variable,
.hljs-template-variable {
	color: #bd63c5;
}

.hljs-attr,
.hljs-attribute,
.hljs-builtin-name {
	color: #9cdcfe;
}

.hljs-section {
	color: #ffd700;
}

.hljs-emphasis {
	font-style: italic;
}

.hljs-strong {
	font-weight: bold;
}

.hljs-bullet,
.hljs-selector-tag,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
	color: #d7ba7d;
}

.hljs-addition {
	background-color: #024c00;
	color: #d9f2d8;
}

.hljs-deletion {
	background-color: #4c0000;
	color: #fecccc;
}

.hl-source,
.hl-text {
	color: var(--hl-gray-2);
}

.hl-variable.hl-parameter.hl-function {
	color: var(--hl-gray-0);
}

.hl-punctuation.hl-definition {
	color: var(--hl-gray-0);
}

.hl-comment,
.hl-punctuation.hl-definition.hl-comment {
	color: var(--hl-dark-green);
}

.hl-keyword.hl-operator {
	color: var(--hl-dark-blue-1);
}

.hl-keyword {
	color: var(--hl-dark-blue-3);
}

.hl-variable {
	color: var(--hl-blue);
}

.hl-entity.hl-name.hl-function,
.hl-meta.hl-require,
.hl-support.hl-function.hl-any-method,
.hl-variable.hl-function {
	color: var(--hl-yellow);
}

.hl-support.hl-class,
.hl-entity.hl-name.hl-class,
.hl-meta.hl-class {
	color: var(--hl-blue);
}

.hl-entity.hl-other.hl-inherited-class {
	color: var(--hl-red);
}

.hl-keyword.hl-other.hl-special-method {
	color: var(--hl-gray-1);
}

.hl-storage {
	color: var(--hl-dark-blue-1);
}

.hl-support.hl-function {
	color: var(--hl-yellow);
}

.hl-string,
.hl-constant.hl-other.hl-symbol {
	color: var(--hl-red);
}

.hl-string.hl-regexp {
	color: var(--hl-gray-5);
}

.hl-constant.hl-character.hl-escape {
	color: var(--hl-gray-5);
}

.hl-constant {
	color: var(--hl-dark-blue-1);
}

.hl-constant.hl-numeric {
	color: var(--hl-green-1);
}

.hl-constant.hl-other.hl-color {
	color: var(--hl-gray-5);
}

.hl-entity.hl-name.hl-tag {
	color: var(--hl-dark-blue-1);
}

.hl-entity.hl-other.hl-attribute-name {
	color: var(--hl-blue);
}

.hl-entity.hl-other.hl-attribute-name.hl-id,
.hl-punctuation.hl-definition.hl-entity {
	color: var(--hl-gray-1);
}

.hl-meta.hl-selector {
	color: var(--hl-purple);
}

.hl-markup.hl-heading,
.hl-punctuation.hl-definition.hl-heading,
.hl-entity.hl-name.hl-section {
	color: var(--hl-gray-1);
}

.hl-keyword.hl-other.hl-unit {
	color: var(--hl-orange);
}

.hl-markup.hl-raw.hl-inline {
	color: var(--hl-green-2);
	/* Links */
}

.hl-string.hl-other.hl-link {
	color: var(--hl-dark-red);
}

.hl-meta.hl-link {
	color: var(--hl-orange);
}

.hl-meta.hl-image {
	color: var(--hl-orange);
}

.hl-markup.hl-list {
	color: var(--hl-dark-red);
}

.hl-punctuation.hl-section.hl-embedded,
.hl-variable.hl-interpolation {
	color: var(--hl-brown);
}

.hl-source.hl-diff {
	color: var(--hl-gray-6);
}

.hl-source.hl-diff .hl-meta.hl-range {
	color: var(--hl-dark-blue-2);
}

.hl-source.hl-diff .hl-markup.hl-deleted {
	color: var(--hl-white);
	background: var(--diff-remove-bg);
}

.hl-source.hl-diff .hl-markup.hl-inserted {
	color: var(--hl-white);
	background: var(--diff-add-bg);
}

.hl-json .hl-key .hl-string {
	color: var(--hl-green-2);
}

.hl-typed-Keyword {
    color: #569cd6;
}

.hl-typed-Comment {
	color: var(--hl-dark-green);
}

.hl-typed-PunctuationDelimiter {
	color: var(--hl-gray-2);
}

.hl-typed-PunctuationBracket {
	color: var(--hl-gray-2);
}

.hl-typed-IdentifierKeyword {
	color: var(--hl-dark-blue-2);
}

.hl-typed-IdentifierOperator {
	color: var(--hl-gray-0);
}

.hl-typed-Identifier {
	color: var(--hl-blue);
}

.hl-typed-IdentifierFunction {
	color: var(--hl-dark-yellow);
}

.hl-typed-IdentifierType {
	color: var(--hl-gray-1);
}

.hl-typed-IdentifierBuiltin {
	color: var(--hl-purple);
}

.hl-typed-IdentifierNull {
	color: var(--hl-orange);
}

.hl-typed-BooleanLiteral {
	color: var(--hl-orange);
}

.hl-typed-IdentifierConstant {
	color: var(--hl-orange);
}

.hl-typed-IdentifierMutableGlobal {
	color: var(--hl-blue);
}

.hl-typed-IdentifierParameter {
	color: var(--hl-blue);
}

.hl-typed-IdentifierLocal {
	color: var(--hl-blue);
}

.hl-typed-IdentifierShadowed {
	color: var(--hl-blue);
}

.hl-typed-IdentifierModule {
	color: var(--hl-blue);
}

.hl-typed-IdentifierFunctionDefinition {
	color: var(--hl-yellow);
}

.hl-typed-IdentifierMacro {
	color: var(--hl-yellow);
}

.hl-typed-IdentifierMacroDefinition {
	color: var(--hl-yellow);
}

.hl-typed-IdentifierBuiltinType {
	color: var(--hl-orange);
}

.hl-typed-IdentifierAttribute {
	color: var(--hl-purple);
}

.hl-typed-StringLiteral {
	color: var(--hl-red);
}

.hl-typed-StringLiteralEscape {
	color: var(--hl-red);
}

.hl-typed-StringLiteralSpecial {
	color: var(--hl-red);
}

.hl-typed-StringLiteralKey {
	color: var(--hl-red);
}

.hl-typed-CharacterLiteral {
	color: var(--hl-red);
}

.hl-typed-NumericLiteral {
	color: var(--hl-green-1);
}

.hl-typed-TagAttribute {
	color: var(--hl-gray-3);
}

.theme-light .theme-contrast-compliant-syntax-highlighting {
	--hl-property: #d33682;
	--hl-string: #058356;
	--hl-function: #886700;
	--hl-object: #677700;
	--hl-keyword: #c44e06;
	--hl-type: #2178b6;
	--hl-const-num: #5f66e0;
	--hl-punctuation: #767676;
	--hl-symbol: #6d6c6c;
	--hl-comment: #767676;
	--hl-modifier: #1626b8;
	--hl-pink: var(--hl-property);
	--hl-cyan: var(--hl-string);
	--hl-yellow: var(--hl-function);
	--hl-green: var(--hl-object);
	--hl-orange: var(--hl-keyword);
	--hl-blue: var(--hl-type);
	--hl-purple: var(--hl-purple);
	--hl-gray-0: var(--hl-comment);
	--hl-gray-1: var(--hl-comment);
	--hl-gray-2: var(--hl-comment);
	--hl-gray-3: var(--hl-symbol);
}

.theme-light .theme-contrast-compliant-syntax-highlighting .hl-punctuation.hl-definition.hl-string {
	color: var(--hl-punctuation);
}

.theme-light .theme-contrast-compliant-syntax-highlighting .hl-storage.hl-modifier {
	color: var(--hl-modifier);
}

.theme-contrast-compliant-syntax-highlighting {
	--hl-property: #eb519c;
	--hl-string: #fb90c4;
	--hl-function: #b58900;
	--hl-object: #859900;
	--hl-keyword: #329af0;
	--hl-type: #329af0;
	--hl-const-num: #777dec;
	--hl-punctuation: #d66f6d;
	--hl-symbol: #bbbbbb;
	--hl-comment: #3ba04f;
	--hl-other: #d08770;
	--hl-pink: var(--hl-property);
	--hl-yellow: var(--hl-function);
	--hl-dark-blue-3: var(--hl-keyword);
	--hl-dark-blue-1: var(--hl-type);
	--hl-purple: var(--hl-const-num);
	--hl-gray-3: var(--hl-symbol);
	--hl-dark-green: var(--hl-comment);
	--hl-red: var(--hl-string);
}

.theme-contrast-compliant-syntax-highlighting .hl-keyword.hl-other.hl-unit {
	color: var(--hl-other);
}

.theme-contrast-compliant-syntax-highlighting .hl-punctuation.hl-section.hl-embedded,
.theme-contrast-compliant-syntax-highlighting .hl-variable.hl-interpolation {
	color: var(--hl-gray-2);
}
